import baseUrl from './baseUrl.js'
import store from '../store/index.js'
var flag = false; //检测当前的modal是否被调用
const install = (Vue, vm) => {
	Vue.prototype.$u.http.setConfig({
		baseUrl: baseUrl.url, // 请求的本域名
		dataType: 'json',
	    // method: 'get',
		showLoading: true, // 是否显示请求中的loading
		loadingText: '努力加载中...', // 请求loading中的文字提示
		loadingTime: 800, // 在此时间内，请求还没回来的话，就显示加载中动画，单位ms
		originalData: true, // 是否在拦截器中返回服务端的原始数据
		loadingMask: true, // 展示loading的时候，是否给一个透明的蒙层，防止触摸穿透
		// 配置请求头信息
		header: {
			'content-type': 'application/x-www-form-urlencoded'
		},
		
	
		
	});

	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptor.request = (config) => {
	     // config.header["Accept"] = "application/json;chartset=utf-8";
	
		const userInfo = uni.getStorageSync('userInfo');
		config.header.Authorization = userInfo.token;
		
		// config.header.Authorization = 'bf53vwFurcF1YkMlXIVvhT1EBKCi3XZodvQJy7hrcztc/+4e0VlcpNIH2Au2bZoPxVUymG0neeK+2G2DC8uBvqHyK4/+2VDSqe+atok/QiPfQ0r7+9ZKzkWtxqFKHS12aNKnilcCeUqrxivw';
		
		
		

	
		return config;
	}

	// 响应拦截，判断状态码是否通过
	Vue.prototype.$u.http.interceptor.response = (res) => {

		if (res.data.code == 200) {
			
			return res.data.data;
		} else if (res.data.code == 403) {			
			//code==1000用户未登录
			
			noLogin('您还未登录请立即登录', 'login')
			return false;
		}else if (res.data.code == 505) {			
			//用户未登录没有注册
				vm.$u.toast(res.data.msg);
		       return res.data;
			return false;
		}else {
				vm.$u.toast(res.data.msg);
			 // vm.$u.toast();
			// 如果返回false，则会调用Promise的reject回调，
			// 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中，res为服务端的返回值
			return false;
		}
	}
}

function noLogin(content, login) {

	if (flag) return
	flag = true
	let pagesArr = getCurrentPages();
	const currentPagePath = pagesArr[pagesArr.length - 1].route;
	const currentPageOption = pagesArr[pagesArr.length - 1].options;
	store.state.currentPagePath = '/'+currentPagePath
	 store.state.currentPageOption=currentPageOption
	uni.showModal({
		title: "提示",
		content,
		confirmText: "立即前往",
		confirmColor: "#007AFF",
		cancelText: "返回",
		complete: res => {
			flag = false
			if (res.confirm) {
				if (login == 'login') {
					uni.removeStorageSync("userInfo")
					uni.redirectTo({
						url: '/pages/register/index'
					})
				} else {
					uni.redirectTo({
						url: '/pages/register/index'
					})
				}
			} else {
				if(pagesArr.length <= 1) {
					uni.switchTab({
						url : "/pages/index/index"
					})
					return
				}
				uni.navigateBack({
					delta: 1
				})
			}
		}
	})


}

export default {
	install
}
